<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 面向对象的三大特征: 封装 继承  多态
    // 封装 => 自定义构造函数(ES6 class)

    // 继承  =>  让一个类(构造函数) 继承 另一个类 的属性和方法,还可以 定义 追加 自己的属性和方法
    // 继承的类 => 子类
    // 被继承的类  => 父类

    // 继承的本质: 构造函数中的属性和方法的复用 (实例相关的属性和方法 原型对象相关的属性和方法) 

    function Person(name,age){
        // 实例相关的属性和方法
        this.name = name;
        this.age = age;
    } 

    // 原型对象相关的属性和方法
    Person.prototype.species = "human";
    Person.prototype.skill = function(){
        console.log("thinging studying");
    }
    Person.prototype.say = function(){
        console.log(this.name,this.age);
    }


    function YellowPerson(name,age,hobby){
        // this.name = name;
        // this.age = age;
        this.hobby = hobby;
    }

    // Person.prototype.species = "human";
    // Person.prototype.skill = function(){
    //     console.log("thinging studying");
    // }
    // Person.prototype.say = function(){
    //     console.log(this.name,this.age);
    // }
    Person.prototype.speak = function(){
        console.log("chinese");
    }





</script>
</html>